The Internet has profoundly changed many aspects of contemporary society, and has become an increasingly important resource for numerous educational, entertainment and commercial purposes. Much of the Internet's popularity has been due to the relatively intuitive manner in which textual and graphical information is presented to users, as well as the relatively unstructured and freeform manner in which users are permitted to navigate to other related repositories of information.
A significant portion of the information accessed over the Internet is presented to users in the form of documents, or web pages, which are downloaded from centralized “server” computers to individual client computers upon request and displayed to users by applications known as “web browsers” that execute on the client computers. The manner in which multiple client computers can access information from a server computer is generally referred to as client-server computing, and much of the Internet is based upon this well accepted networking scheme.
The documents downloaded to clients are typically encoded with one or more embedded tags defined in a markup language such as the Hypertext Markup Language (HTML) that control the formatting of the documents when viewed on a web browser. Such documents typically draw extensively on the concept of hypertext linking, whereby documents are linked together by links displayed in the documents and defined by various embedded tags. Through user selection of a link displayed in one document, the user is typically able to have another document that is referenced by the link retrieved and displayed to the user.
Standardized formats such as HTML and the like have been developed for hypertext and other types of documents, and for the various types of information that can be incorporated into such documents, which often permits such documents to be accessed by a wide variety of client computers irrespective of the underlying hardware or software platforms used on those computers. In addition, due to the highly intuitive and flexible interface supported by the Internet, many private networks now incorporate much of the same capabilities and standardized formats. Moreover, by utilizing the same formats to present information from both the Internet and a private network, often the same web browser can be used to display both types of information, thus minimizing the amount of software required to be installed on client computers.
New technologies are continually being developed to expand the functionality available through an Internet-based or similar interface, both from the perspective of client computers and of server computers. More complex display capabilities such as advanced user input controls, animation, audio/video, etc. continue to be incorporated into Internet-based interfaces, resulting in an overall more dynamic and powerful interface for end users.
As an example, scripting is utilized in a number of environments to embed instructions into downloaded documents. The instructions are typically interpreted by a web browser when a document is initially presented to a user and/or in response to particular types of input received from a user. In addition, platform-independent programming languages such as the JAVA programming language have been developed to provide a standardized programming interface through which program code may be downloaded and executed by a client to perform more complex tasks than could otherwise be performed by script instructions, which permits practically any functionality to be incorporated into a client.
In many instances, documents may be provided with various forms of embedded or referenced program code, such as scripts, JAVA applets, etc., which effectively renders these documents “active” from the standpoint that the program code embedded within or referenced by the document itself may be used to implement active functionality on the client. Such active documents, for example, have the capability to pass data back to a server in response to user input, as well as to process data received from a server, e.g., to dynamically modify the display of the document on a client computer.
In addition, from the perspective of a server, technologies such as JAVASCRIPT and JAVA may also be utilized by a server to enhance the overall presentation of information and interaction with a user. For example, one popular technology utilized in many Internet-based interfaces is that JAVA “servlets,” which are essentially JAVA applets designed to execute on a server, instead of a client. Servlets may be used to dynamically generate documents such as hypertext documents, as well as to handle input received from users via such documents. Servlets may also be used to access back-end services such as application servers and databases.
Yet another technology capable of being implemented on a server is JAVA Server Page (JSP) technology. JSP's are based upon a type of “active” server page technology, where program code is embedded into an HTML-encoded “template” or form that is used to generate a customized document for download to a client.
Active server pages are typically associated with server-side program code, and are used to both generate documents for download to clients, as well as to handle input received from users via such documents. Moreover, the server-side program code associated with such pages may have functionality to access back-end services such as application servers and databases.
Specifically with regard to JSP's, the HTML-encoded forms utilized in JSP's typically incorporate scripts and/or server-side JAVA program code that are compiled upon initial loading of a JSP to generate one or more JAVA servlets that reside on a server and assist in generating downloadable documents from the JSP from, and handle user input received from users via the downloaded documents.
One advantage to the use of JSP's and other forms of active server pages is that the code development is conceptually separated from the presentation development. As a result, the development of content to be distributed to clients can substantially simplified and accelerated as compared to developments that closely tie together content and control.
The use of servlets, JSP's and the like has substantially simplified and accelerated the development of more powerful, flexible and complex user interfaces. However, given the ever-increasing use of the Internet and computers in general, a significant need has arisen as a result of the increasing workloads experienced by servers that supply content to clients over the Internet and/or other public or private networks. In particular, the number of clients requesting tasks from most servers continues to increase, as does the amount of processing overhead required to process the increasingly complex tasks requested by such clients. The incorporation of technologies such as servlets, JSP's and the like further increases server workload due to the relatively processing-intensive nature of many of the functions supported by such technologies.
Servers, like all computers, only have limited resources, and despite the continual gains being made in terms of both processing power and memory capacity, these resources are often quickly consumed by the increased workloads demanded by clients. As the demand on a server increases, the response times to clients increase, which decreases user productivity and often increases user frustration. However, increasing server capacity often necessitates either replacing a server with a more advanced model, or networking together multiple servers to share the overall burden. In either case, however, the addition of capacity is often an expensive proposition.
Therefore, a significant need continues to exist for a manner of minimizing the processing overhead for servers connected to the Internet or other client-server environments. In particular, a continuing need exists for a manner of decreasing the processing overhead in a server that is associated with generating active documents and handling the interaction with users via such documents.